package van.planifolia.function;

import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;
import java.util.function.Function;

/**
 * Created by Intellij IDEA<br>
 *
 * @author Planifolia.Van
 * @version 1.0
 * @date 2022/11/3 17:52
 */
public class Function3 {
    public static void main(String[] args) {
        Integer[] integers = {1, 99, 361, 4, 9, 100, 3};
        // 我们要使用这个计算者函数式接口完成数组的冒泡排序
        test(items -> {
            int temp;
            for (int i = 0; i < items.length; i++) {
                for (int j = 1; j < items.length - i; j++) {
                    if (items[j - 1] > items[j]) {
                        {
                            temp = items[j];
                            items[j] = items[j - 1];
                            items[j - 1] = temp;
                        }
                    }
                }
            }
            return items;
        }, integers);
    }
    /**
     * 编写一个测试方法来模拟jdk中的一些需要使用函数式接口的方法
     *
     * @param function 计算者函数式接口的实现类
     * @param integers 要被计算的数组
     */
    public static void test(Function<Integer[], Integer[]> function, Integer[] integers) {
        for (Integer integer : function.apply(integers)) {
            System.out.println(integer);
        }
    }
}
